﻿using System.Runtime;
using System.Globalization;

namespace System.Reflection
{
    [NonScript]
    public abstract class ConstructorInfo : MethodBase
    {
        public override MemberTypes MemberType
        {
            get
            {
                return MemberTypes.Constructor;
            }
        }

        [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
        protected ConstructorInfo()
        {
        }

        public static bool operator ==(ConstructorInfo left, ConstructorInfo right)
        {
            return false;
        }

        public static bool operator !=(ConstructorInfo left, ConstructorInfo right)
        {
            return !(left == right);
        }

        public override bool Equals(object obj)
        {
            return base.Equals(obj);
        }

        public override int GetHashCode()
        {
            return base.GetHashCode();
        }

        public abstract object Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture);

        public object Invoke(object[] parameters)
        {
            return null;
        }
    }
}
